home *** CD-ROM | disk | FTP | other *** search
/ NeXT Education Software Sampler 1992 Fall / NeXT Education Software Sampler 1992 Fall.iso / Programming / Source / Car / GasTank.m < prev    next >
Encoding:
Text File  |  1992-06-25  |  2.0 KB  |  124 lines

  1.  
  2. /* Generated by Interface Builder */
  3.  
  4. #import "Car_main.h"
  5. #import "GasTank.h"
  6.  
  7. @implementation GasTank
  8.  
  9. - init
  10. {
  11.     [super init];
  12.     gasTank = self;
  13.     return self;
  14. }
  15.  
  16. - read:(NXTypedStream *)stream
  17. {
  18.     [super read:stream];
  19.     NXReadTypes(stream,"dffff",¤t,&energyDensity,&fuelDensity,&mass,&max);
  20.     return self;
  21. }
  22.  
  23. - write:(NXTypedStream *)stream
  24. {
  25.     [super write:stream];
  26.     NXWriteTypes(stream,"dffff",¤t,&energyDensity,&fuelDensity,&mass,&max);
  27.     return self;
  28.  
  29. }
  30.  
  31. - (double)current
  32. {
  33.     return current;
  34. }
  35.  
  36. - setCurrent:(double)aNumber
  37. {
  38.     current = aNumber;
  39.     return self;
  40. }
  41.  
  42. - (float)energyDensity
  43. {
  44.     return energyDensity;
  45. }
  46.  
  47. - setEnergyDensity:(float)aNumber
  48. {
  49.     energyDensity = aNumber;
  50.     return self;
  51. }
  52.  
  53. - (float)fuelDensity
  54. {
  55.     return fuelDensity;
  56. }
  57.  
  58. - setFuelDensity:(float)aNumber
  59. {
  60.     fuelDensity = aNumber;
  61.     return self;
  62. }
  63.  
  64. - (float)mass
  65. {
  66.     return mass;
  67. }
  68.  
  69. - setMass:(float)aNumber
  70. {
  71.     mass = aNumber;
  72.     return self;
  73. }
  74.  
  75. - (float)fuelMass
  76. {
  77.     return (current * fuelDensity);
  78. }
  79.  
  80. - (float)max
  81. {
  82.     return max;
  83. }
  84.  
  85. - setMax:(float)aNumber
  86. {
  87.     max = aNumber;
  88.     return self;
  89. }
  90.  
  91. /******************************************************************************************************************************
  92.  *    Here is where the actual work gets done.  Not very much, is it?                                                         *
  93.  ******************************************************************************************************************************/
  94. - energyRequired:(float)energy
  95. {
  96. float volumeUsed;
  97.  
  98.     energy /= 1000;            // Remember to convert from Joules to kiloJoules
  99.     volumeUsed = energy / energyDensity;
  100.     current -= volumeUsed;
  101.     return self;
  102. }
  103.  
  104. - getSetForRun
  105. {
  106.     startLevel = current;
  107.     return self;
  108. }
  109.  
  110. - finishedRun
  111. {
  112.     current = startLevel;
  113.     return self;
  114. }
  115.  
  116. - report:(NXStream *)stream
  117. {
  118.     NXPrintf(stream,"Gas Tank:\n");
  119.     NXPrintf(stream,"  Fuel Used:%fL\n",startLevel - current);
  120.     return self;
  121. }
  122.  
  123. @end
  124.